package top.lshaci.learning.springboot.jpaquerydsl.core;

import com.querydsl.core.types.dsl.EntityPathBase;

import java.lang.annotation.*;

/**
 * DslCondition
 *
 * @author liangxu
 */
@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface DslCondition {

    /**
     * 查询字段
     *
     * @return 查询字段
     */
    String[] field() default {};

    /**
     * 查询字段所在的实体Class
     *
     * @return 查询字段所在的实体Class
     */
    Class<? extends EntityPathBase<?>> fromClass() default DslVoidEntity.class;

    /**
     * 匹配方式
     *
     * @return 匹配方式
     */
    DslMatcher matcher() default DslMatcher.EQ;

    /**
     * 是否忽略该字段
     *
     * @return 忽略字段
     */
    boolean ignore() default false;
}
